/**
 * desc: grid manager wrap
 * author: Joe
 * date: 8/6/2018
 */

coreModule.directive('nGrid', function() {
  return {
    restrict: 'E',
    scope: {
      gmOption: '<',
      gmScope: '<'
    },
    template: '<table></table>',
    compile: function(templateEle, templateAttrs) {
      var defaultOption = {
        ajax_xhrFields: {withCredentials: true},
        isCombSorting: true,         // 多条件排序
        supportAjaxScope: true,      // 支持跨域
        supportCheckbox: false,       // 开启Checkbox
        supportAjaxPage: true,       // 开启分页
        supportDrag: false,          // 禁止拖动
        supportAutoOrder: true,     // 禁止序号
        ajax_type: 'POST',           // 请求类型
        pageSize: 10,                // 分页大小
        height: '400px',             // 表格高度
        // width: '1280px',             // 表格宽度
        responseHandler: function(response){  //修改返回值
          if (response.error_code === '211'){
            sessionStorage.clear();
            location.reload();
          }
          return response.data;
        },
        ajax_success: function(res) {
          // todo : add success handle-fun here
        },
        ajax_error: function() {
          // todo : add error handle-fun here
        }
      };

      return function($scope) {
        var table = templateEle[0].querySelector('n-grid table');
        var option = angular.extend(defaultOption, $scope.gmOption);

        table.GM('init', option);
        GM.setScope(table, $scope.gmScope);
      };
    },
  };
});
